home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2006 October / wn148cd2.iso / Windows / S'informer / Copernic Desktop Search / copernicdesktopsearchfr.exe / $R0 / 1033 / RC_DATA / RSSXSLTFILE < prev    next >
Extensible Markup Language  |  2006-05-31  |  28KB  |  685 lines

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  3.                xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" 
  4.                xmlns:atom="http://purl.org/atom/ns#"
  5.                xmlns:atom2="http://www.w3.org/2005/Atom"
  6.                xmlns:dc="http://purl.org/dc/elements/1.1/"
  7.                xmlns:dcterms="http://purl.org/dc/terms/"
  8.                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  9.                xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  10.                xmlns:admin="http://webns.net/mvcb/"
  11.                xmlns:cc="http://web.resource.org/cc/"
  12.                xmlns="http://purl.org/rss/1.0/"
  13.                version="1.0">
  14.   
  15.   <xsl:output method="html"/>
  16.  
  17.   <xsl:variable name="HideDescription">
  18.     <xsl:value-of select="//news/@hidedescr" />
  19.   </xsl:variable>
  20.   
  21. <!-- ********************************************************************** -->
  22. <!-- ** GetTitle                                                         ** -->
  23. <!-- ********************************************************************** -->
  24. <xsl:template name="GetTitle">
  25.     <xsl:choose>
  26.         <xsl:when test="*[local-name() = 'title']">
  27.           <xsl:value-of select="*[local-name() = 'title']" disable-output-escaping="yes" />
  28.         </xsl:when>
  29.         <xsl:when test="atom:title">
  30.           <xsl:value-of select="atom:title" disable-output-escaping="yes" />
  31.         </xsl:when>
  32.         <xsl:when test="atom2:title">
  33.           <xsl:value-of select="atom2:title" disable-output-escaping="yes" />
  34.         </xsl:when>
  35.     </xsl:choose>
  36. </xsl:template>
  37.  
  38. <!-- ********************************************************************** -->
  39. <!-- ** GetLink                                                          ** -->
  40. <!-- ********************************************************************** -->
  41. <xsl:template name="GetLink">
  42.     <xsl:choose>
  43.         <xsl:when test="atom:link/@href">
  44.           <xsl:value-of select="atom:link/@href" />
  45.         </xsl:when>
  46.         <xsl:when test="atom2:link/@href">
  47.           <xsl:value-of select="atom2:link/@href" />
  48.         </xsl:when>
  49.         <xsl:otherwise>
  50.           <xsl:value-of select="*[local-name() = 'link']" />
  51.         </xsl:otherwise>
  52.     </xsl:choose>
  53. </xsl:template>
  54.  
  55. <!-- ********************************************************************** -->
  56. <!-- ** Replace CR/LF                                                    ** -->
  57. <!-- ********************************************************************** -->
  58. <xsl:template name="ReplaceCRLF">
  59. <xsl:param name="string" />
  60. <xsl:if test="contains($string, ' ')">
  61.   <xsl:value-of select="substring-before($string, ' ')" disable-output-escaping="yes" /><br/>
  62.   <xsl:call-template name="ReplaceCRLF">
  63.     <xsl:with-param name="string">
  64.       <xsl:value-of select="substring-after($string, ' ')" disable-output-escaping="yes" />
  65.     </xsl:with-param>
  66.   </xsl:call-template>
  67. </xsl:if>
  68. <xsl:if test="not(contains($string, ' '))">
  69.   <xsl:value-of select="$string" disable-output-escaping="yes" />
  70. </xsl:if>
  71. </xsl:template>
  72.  
  73. <!-- ********************************************************************** -->
  74. <!-- ** GetDescription                                                   ** -->
  75. <!-- ********************************************************************** -->
  76. <xsl:template name="GetDescription">
  77.   <xsl:variable name="desc_maxlen" select="400" />
  78.   <xsl:variable name="description" >
  79.     <xsl:choose>
  80.         <xsl:when test="atom:content">    
  81.             <xsl:value-of select="atom:content" disable-output-escaping="yes" />          
  82.         </xsl:when>
  83.         <xsl:when test="atom:summary">    
  84.             <xsl:value-of select="atom:summary" disable-output-escaping="yes" />          
  85.         </xsl:when>
  86.         <xsl:when test="atom2:content">    
  87.             <xsl:value-of select="atom2:content" disable-output-escaping="yes" />          
  88.         </xsl:when>
  89.         <xsl:when test="atom2:summary">    
  90.             <xsl:value-of select="atom2:summary" disable-output-escaping="yes" />          
  91.         </xsl:when>
  92.         <xsl:when test="*[local-name() = 'encoded']">          
  93.             <xsl:value-of select="*[local-name() = 'encoded']" disable-output-escaping="yes" />
  94.         </xsl:when>
  95.         <xsl:when test="*[local-name() = 'description']">          
  96.             <xsl:value-of select="*[local-name() = 'description']" disable-output-escaping="yes" />
  97.         </xsl:when>
  98.     </xsl:choose>
  99.   </xsl:variable>  
  100.   <xsl:if test="string-length($description) > 0">
  101.     <xsl:variable name="short_description" select="substring($description,0,$desc_maxlen)" />
  102.     <!-- Get the remaining part of the last word to avoid cutting it. -->
  103.     <xsl:variable name="last_word" select="substring-before(substring(concat($description,' '),$desc_maxlen),' ')" />
  104.     <xsl:choose>
  105.       <xsl:when test="string-length(concat($short_description,$last_word)) = string-length($description)">
  106.         <!-- Return Complete description  because it is short enough. -->
  107.           <xsl:call-template name="ReplaceCRLF">
  108.             <xsl:with-param name="string" select="$description" />
  109.           </xsl:call-template>      
  110.           <!-- Add a cariage return at the end of paragraph if there is not. -->
  111.           <xsl:if test="not(contains(substring($description,string-length($description)-2,2), ' '))">
  112.             <br/>
  113.           </xsl:if>      
  114.       </xsl:when>
  115.       <!-- Short description (text too long) -->
  116.       <xsl:otherwise>
  117.           <!-- Look for HTML tag. If found, display whole description. -->        
  118.           <xsl:choose>        
  119.           <xsl:when test="contains($description,'>')">
  120.             <!-- Output content as is. -->
  121.             <xsl:value-of select="$description" disable-output-escaping="yes" />
  122.             <br/>
  123.           </xsl:when>
  124.           <xsl:otherwise>        
  125.             <xsl:variable name="unique_id" select="generate-id()" />
  126.             <div id="short{$unique_id}" style="display:inline">
  127.               <xsl:call-template name="ReplaceCRLF">
  128.                 <xsl:with-param name="string" select="concat($short_description,$last_word)" />
  129.               </xsl:call-template>            
  130.               ...<span class="action-link"><a href="javascript:ShowMore('short{$unique_id}','long{$unique_id}')">[more...]</a></span>
  131.               <br/>
  132.             </div>
  133.             <div id="long{$unique_id}" style="display:none">
  134.               <xsl:call-template name="ReplaceCRLF">
  135.                 <xsl:with-param name="string" select="$description" />
  136.               </xsl:call-template>
  137.               <!-- Add a cariage return at the end of paragraph if there is not. -->
  138.               <xsl:if test="not(contains(substring($description,string-length($description)-2,2), ' '))">
  139.                 <br/>
  140.               </xsl:if>
  141.             </div>          
  142.           </xsl:otherwise>
  143.           </xsl:choose>      
  144.       </xsl:otherwise>
  145.     </xsl:choose>
  146.   </xsl:if>
  147. </xsl:template>
  148.  
  149. <!-- ********************************************************************** -->
  150. <!-- ** GetSummary                                                       ** -->
  151. <!-- ********************************************************************** -->
  152. <xsl:template name="GetSummary">  
  153.   <xsl:variable name="desc_maxlen" select="400" />
  154.   <xsl:variable name="description" >
  155.     <xsl:choose>
  156.         <xsl:when test="atom:summary">    
  157.             <xsl:value-of select="atom:summary" disable-output-escaping="yes" />          
  158.         </xsl:when>
  159.         <xsl:when test="atom2:summary">    
  160.             <xsl:value-of select="atom2:summary" disable-output-escaping="yes" />          
  161.         </xsl:when>
  162.         <xsl:when test="atom:content">    
  163.             <xsl:value-of select="atom:content" disable-output-escaping="yes" />          
  164.         </xsl:when>
  165.         <xsl:when test="atom2:content">    
  166.             <xsl:value-of select="atom2:content" disable-output-escaping="yes" />          
  167.         </xsl:when>
  168.         <xsl:when test="*[local-name() = 'description']">          
  169.             <xsl:value-of select="*[local-name() = 'description']" disable-output-escaping="yes" />
  170.         </xsl:when>        
  171.         <xsl:when test="*[local-name() = 'encoded']">          
  172.             <xsl:value-of select="*[local-name() = 'encoded']" disable-output-escaping="yes" />
  173.         </xsl:when>        
  174.     </xsl:choose>
  175.   </xsl:variable>
  176.   <!-- If summary contains ">" we suppose that it contains html and will not return summary. -->
  177.   <xsl:if test="contains($description,'>') = 0">
  178.     <xsl:if test="string-length($description) > 0">
  179.       <xsl:variable name="short_description" select="substring($description,0,$desc_maxlen)" />
  180.       <!-- Get the remaining part of the last word to avoid cutting it. -->
  181.       <xsl:variable name="last_word" select="substring-before(substring(concat($description,' '),$desc_maxlen),' ')" />
  182.       <xsl:choose>
  183.         <!-- Complete description -->
  184.         <xsl:when test="string-length(concat($short_description,$last_word)) = string-length($description)">
  185.  
  186.           <xsl:call-template name="ReplaceCRLF">
  187.             <xsl:with-param name="string" select="$description" />
  188.           </xsl:call-template>
  189.  
  190.         </xsl:when>
  191.         <!-- Short description (text too long) -->
  192.         <xsl:otherwise>
  193.           <!--Hint bubble text-->
  194.           <xsl:value-of select="concat($short_description,$last_word,' [...]')" disable-output-escaping="yes" />
  195.         </xsl:otherwise>
  196.       </xsl:choose>
  197.     </xsl:if>
  198.   </xsl:if>
  199. </xsl:template>
  200.  
  201. <!-- ********************************************************************** -->
  202. <!-- ** GetPubDate                                                       ** -->
  203. <!-- ********************************************************************** -->
  204. <xsl:template name="GetPubDate">
  205.     <xsl:choose>
  206.         <xsl:when test="atom:issued">
  207.           <xsl:value-of select="atom:issued" />
  208.         </xsl:when>
  209.         <xsl:when test="atom2:issued">
  210.           <xsl:value-of select="atom2:issued" />
  211.         </xsl:when>
  212.         <xsl:when test="pubDate">
  213.           <xsl:value-of select="pubDate" />
  214.         </xsl:when>
  215.     </xsl:choose>
  216. </xsl:template>
  217.  
  218. <!-- ********************************************************************** -->
  219. <!-- ** Replace                                                          ** -->
  220. <!-- ********************************************************************** -->
  221. <xsl:template name="Replace">
  222.   <xsl:param name="VALUE" />
  223.   <xsl:param name="REPLACE" />
  224.   <xsl:param name="WITH" />
  225.   
  226.   <xsl:value-of select="concat(substring-before($VALUE, $REPLACE), $WITH, substring-after($VALUE, $REPLACE))" />
  227.     
  228. </xsl:template>  
  229.  
  230. <!-- ********************************************************************** -->
  231. <!-- ** FeedItem                                                             ** -->
  232. <!-- ********************************************************************** -->
  233. <xsl:template name="FeedItem">
  234.   <xsl:param name="TITLE" />
  235.   <xsl:param name="NEWS_ID"/>
  236.   <xsl:variable name="LINK">
  237.     <xsl:call-template name="GetLink" />
  238.   </xsl:variable>
  239.         
  240.       <xsl:choose>
  241.         <xsl:when test="contains($TITLE, '<a')">
  242.             <xsl:value-of select="$TITLE" disable-output-escaping="yes" />
  243.         </xsl:when>
  244.         <xsl:otherwise>
  245.           <span class="news-link">
  246.             <a target="_blank">              
  247.               <xsl:attribute name="title">
  248.                 <xsl:call-template name="GetSummary">
  249.                 </xsl:call-template>
  250.               </xsl:attribute>
  251.               <xsl:attribute name="href">
  252.                 <xsl:call-template name="GetLink" />
  253.               </xsl:attribute>
  254.               <xsl:value-of select="$TITLE" disable-output-escaping="yes"/>
  255.             </a>
  256.           </span>
  257.         </xsl:otherwise>
  258.       </xsl:choose>
  259.       <br/>      
  260.       <xsl:if test="$HideDescription != 'yes'">
  261.       <div class="news" style="display:inline" id="{$NEWS_ID}">
  262.         <xsl:call-template name="GetDescription" />
  263.       </div>      
  264.       </xsl:if>
  265.       <span class="smlltxt"> <xsl:call-template name="GetPubDate" /> </span>
  266.   
  267.     
  268. </xsl:template>
  269.  
  270. <!-- ********************************************************************** -->
  271. <!-- ** Feed                                                             ** -->
  272. <!-- ********************************************************************** -->
  273. <xsl:template name="Feed">
  274.   <xsl:param name="FEED_ID"/>
  275.   <xsl:variable name="c_FeedImageId">FeedImg_</xsl:variable>
  276.   <xsl:variable name="c_ComleteNewsId">CompleteNews</xsl:variable>
  277.   <xsl:variable name="c_NewsId">News_</xsl:variable>
  278.   <xsl:variable name="c_NewsImageId">NewsImg_</xsl:variable>
  279.   <xsl:variable name="c_FeedImageSrc">arrow-down.gif</xsl:variable>
  280.   <xsl:variable name="c_NewsImageSrc">arrow-news-down.gif</xsl:variable>
  281.   
  282.   <table width="100%" border="0" cellpadding="0" cellspacing="0">
  283.   <tr>
  284.     <td height="2" class="news-topborder" colspan="3"></td>
  285.   </tr>
  286.   <tr>
  287.     <td width="1" class="news-border"></td>
  288.     <td class="news-border" align="middle" valign="top">      
  289.       <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
  290.       <tr>
  291.         <td>          
  292.           <table width="100%" border="0" cellpadding="0" cellspacing="6" bgcolor="#ffffff">
  293.           <tr>
  294.           <td valign="middle">
  295.             <div class="feedhead">
  296.               <span title="{description}">
  297.                   <xsl:call-template name="GetTitle" />                  
  298.               </span>
  299.             </div>        
  300.           </td>
  301.           <td>
  302.             <img src="{$c_FeedImageSrc}" style="cursor:pointer" align="right" id="{concat($c_FeedImageId,$FEED_ID)}" onclick="toggle('{$FEED_ID}', 'FEED');"/>
  303.           </td>
  304.           </tr>
  305.           </table>          
  306.           <div id="HR_{$FEED_ID}" style="display:inline">
  307.           <table width="100%" border="0" cellspacing="0" cellpadding="0">
  308.           <tr>
  309.             <td width="6"><img src="spacer.gif" width="6" height="1" /></td>
  310.             <td width="100%">              
  311.                 <table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td class="news-hr" height="1"></td></tr></table>              
  312.             </td>
  313.             <td width="6"><img src="spacer.gif" width="6" height="1" /></td>
  314.           </tr>
  315.           <tr><td height="6" colspan="3"></td></tr>
  316.           </table>
  317.           </div>
  318.       
  319.           <div style="display:inline" id="FeedBody_{$FEED_ID}" name="feedbody_{$FEED_ID}">
  320.       
  321.           <table width="98%" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff" align="middle">
  322.           <tr valign="top">
  323.               
  324.           <xsl:choose>
  325.           <xsl:when test="../*[local-name() = 'item']">
  326.             <td width="50%">
  327.               <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
  328.               <xsl:for-each select="../*[local-name() = 'item']">
  329.                 <xsl:if test="(position() mod 2)!=0">
  330.                 <div id="{concat($c_ComleteNewsId,position(),'_',$FEED_ID)}">
  331.                 <table width="100%" border="0" cellspacing="0" cellpadding="2">
  332.                 <tr>
  333.                   <td width="20" valign="top">
  334.                     <img src="{$c_NewsImageSrc}" style="cursor:pointer" id="{concat($c_NewsImageId,position(),'_',$FEED_ID)}" onclick="toggle('{concat(position(),'_',$FEED_ID)}', 'NEWS');"/>
  335.                   </td>
  336.                   <td>
  337.                     <xsl:call-template name="FeedItem">
  338.                       <xsl:with-param name="NEWS_ID" select="concat($c_NewsId, position(),'_',$FEED_ID)"/>
  339.                       <xsl:with-param name="TITLE">
  340.                         <xsl:call-template name="GetTitle" />
  341.                       </xsl:with-param>
  342.                     </xsl:call-template>
  343.                   </td>
  344.                 </tr>
  345.                 </table>
  346.                 <br/>
  347.                 </div>
  348.                 </xsl:if>
  349.               </xsl:for-each>
  350.               </td></tr></table>
  351.             </td>
  352.             <td width="50%">
  353.               <table border="0" cellspacing="0" cellpadding="0"><tr><td>  
  354.               <xsl:for-each select="../*[local-name() = 'item']">
  355.                 <xsl:if test="(position() mod 2)=0">
  356.                 <div id="{concat($c_ComleteNewsId,position(),'_',$FEED_ID)}">
  357.                 <table width="100%" border="0" cellspacing="0" cellpadding="2">
  358.                 <tr>
  359.                   <td width="20" valign="top">
  360.                     <img src="{$c_NewsImageSrc}" style="cursor:pointer" id="{concat($c_NewsImageId,position(),'_',$FEED_ID)}" onclick="toggle('{concat(position(),'_',$FEED_ID)}', 'NEWS');"/>
  361.                   </td>
  362.                   <td>
  363.                     <xsl:call-template name="FeedItem">
  364.                       <xsl:with-param name="NEWS_ID" select="concat($c_NewsId, position(),'_',$FEED_ID)"/>
  365.                       <xsl:with-param name="TITLE">
  366.                         <xsl:call-template name="GetTitle" />
  367.                       </xsl:with-param>
  368.                     </xsl:call-template>
  369.                   </td>
  370.                 </tr>
  371.                 </table>
  372.                 <br/>
  373.                 </div>
  374.                 </xsl:if>
  375.               </xsl:for-each>
  376.               </td></tr></table>
  377.             </td>
  378.           </xsl:when>
  379.           <xsl:otherwise>
  380.             <td width="50%">
  381.               <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
  382.               <xsl:for-each select="*[local-name() = 'item' or local-name() = 'entry']">
  383.                 <xsl:if test="(position() mod 2)!=0">
  384.                 <div id="{concat($c_ComleteNewsId,position(),'_',$FEED_ID)}">
  385.                 <table width="100%" border="0" cellspacing="0" cellpadding="2">
  386.                 <tr>
  387.                   <td width="20" valign="top">
  388.                     <img src="{$c_NewsImageSrc}" style="cursor:pointer" align="right" id="{concat($c_NewsImageId,position(),'_',$FEED_ID)}" onclick="toggle('{concat(position(),'_',$FEED_ID)}', 'NEWS');"/>
  389.                   </td>
  390.                   <td>
  391.                     <xsl:call-template name="FeedItem">
  392.                       <xsl:with-param name="NEWS_ID" select="concat($c_NewsId, position(),'_',$FEED_ID)"/>
  393.                       <xsl:with-param name="TITLE">                      
  394.                         <xsl:call-template name="GetTitle" />
  395.                       </xsl:with-param>
  396.                     </xsl:call-template>
  397.                   </td>
  398.                 </tr>
  399.                 </table>
  400.                 <br/>
  401.                 </div>
  402.                 </xsl:if>                
  403.               </xsl:for-each>
  404.               </td></tr></table>
  405.             </td>
  406.             <td width="50%">
  407.             <table border="0" cellspacing="0" cellpadding="0"><tr><td>
  408.               <xsl:for-each select="*[local-name() = 'item' or local-name() = 'entry']">
  409.                 <xsl:if test="(position() mod 2)=0">
  410.                 <div id="{concat($c_ComleteNewsId,position(),'_',$FEED_ID)}">
  411.                 <table width="100%" border="0" cellspacing="0" cellpadding="2">
  412.                 <tr>                  
  413.                   <td width="20" valign="top">
  414.                     <img src="{$c_NewsImageSrc}" style="cursor:pointer" align="right" id="{concat($c_NewsImageId,position(),'_',$FEED_ID)}" onclick="toggle('{concat(position(),'_',$FEED_ID)}', 'NEWS');"/>                    
  415.                   </td>                  
  416.                   <td>
  417.                     <xsl:call-template name="FeedItem">
  418.                       <xsl:with-param name="NEWS_ID" select="concat($c_NewsId, position(),'_',$FEED_ID)"/>
  419.                       <xsl:with-param name="TITLE">
  420.                         <xsl:call-template name="GetTitle" />                      
  421.                       </xsl:with-param>
  422.                     </xsl:call-template>
  423.                   </td>
  424.                 </tr>
  425.                 </table>
  426.                 <br/>
  427.                 </div>
  428.                 </xsl:if>
  429.               </xsl:for-each>
  430.               </td></tr></table>
  431.             </td>            
  432.           </xsl:otherwise>
  433.           </xsl:choose>
  434.           
  435.           </tr>  
  436.           </table>
  437.         </div>
  438.       </td>
  439.       <td width="1" class="news-border"></td>
  440.       </tr>
  441.       <tr>
  442.         <td height="1" class="news-border" colspan="3"></td>
  443.       </tr>
  444.       </table>
  445.     </td></tr></table>
  446.     <br/>
  447. </xsl:template>
  448.  
  449. <!-- ********************************************************************** -->
  450. <!-- ** FeedDoc                                                          ** -->
  451. <!-- ********************************************************************** -->
  452. <xsl:template name="FeedDoc">
  453.   <xsl:param name="FEED_ID" />
  454.      <xsl:variable name="FEED_DOC" select="document(@href)" />
  455.      
  456.      <xsl:choose>
  457.        <xsl:when test="$FEED_DOC/atom:feed">
  458.          <xsl:for-each select="$FEED_DOC/atom:feed">
  459.           <xsl:call-template name="Feed">
  460.             <xsl:with-param name="FEED_ID" select="$FEED_ID" />
  461.           </xsl:call-template>
  462.       </xsl:for-each>
  463.        </xsl:when>
  464.        <xsl:when test="$FEED_DOC/atom2:feed">
  465.          <xsl:for-each select="$FEED_DOC/atom2:feed">
  466.           <xsl:call-template name="Feed">
  467.             <xsl:with-param name="FEED_ID" select="$FEED_ID" />
  468.           </xsl:call-template>
  469.       </xsl:for-each>
  470.       </xsl:when>
  471.        <xsl:when test="$FEED_DOC/rdf:RDF">
  472.          <xsl:for-each select="$FEED_DOC/rdf:RDF/*[local-name() = 'channel']">
  473.           <xsl:call-template name="Feed">
  474.             <xsl:with-param name="FEED_ID" select="$FEED_ID" />
  475.           </xsl:call-template>
  476.       </xsl:for-each>
  477.        </xsl:when>
  478.        <xsl:otherwise>
  479.          <xsl:for-each select="$FEED_DOC//*[local-name() = 'channel']">
  480.           <xsl:call-template name="Feed">
  481.             <xsl:with-param name="FEED_ID" select="$FEED_ID" />
  482.           </xsl:call-template>
  483.       </xsl:for-each>
  484.        </xsl:otherwise>
  485.      </xsl:choose>
  486.   
  487. </xsl:template>
  488.  
  489. <!-- ********************************************************************** -->
  490. <!-- ** SubHeader                                                       ** -->
  491. <!-- ********************************************************************** -->
  492. <xsl:template name="SubHeader">
  493.   <div id="h1container">
  494.       <table id="h1table" ><tr>
  495.           <td ><h1 class="Heading-Secondary-Page-H1" style="text-align:left">My RSS Feeds</h1></td>
  496.           <td  align="right" valign="bottom"><span class="Body-Text-Small"><a  href="javascript:history.go(-1);">Back to Previous Page</a></span></td>
  497.       </tr></table>
  498.   </div>
  499. </xsl:template>
  500.  
  501. <!-- ********************************************************************** -->
  502. <!-- ** Footer                                                       ** -->
  503. <!-- ********************************************************************** -->
  504. <xsl:template name="Footer">
  505.     <p class="centered"><span class="Body-Text"><strong>Note:</strong> Each time you return to this page all headlines will be shown in the maximized format.<br /> </span></p>
  506.   <p class="centered"><span class="Body-Text"><a href="#pagetop">Top of Page</a></span></p>
  507.     <div id="footer">    
  508. <!-- DP footer -->
  509. <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
  510.   <TBODY>
  511.   <TR height="10">
  512.     <TD colSpan="3"><span class="spacer" style="height:1px;width:1px;"></span></TD></TR>
  513.   <TR height="1">
  514.     <TD class="searchGrnBkgrnd" colSpan="3"><span class="spacer" style="height:1px;width:1px;"></span></TD></TR>
  515.   <TR height="5">
  516.     <TD colSpan="3"><span class="spacer" style="height:1px;width:1px;"></span></TD></TR>
  517.   <TR>
  518.     <TD>
  519.       <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
  520.         <TBODY>
  521.         <TR>
  522.           <TD class="ftrCopy" vAlign="top" align="center">┬⌐ 2006 <A 
  523.             href="http://www.copernic.com/"> Copernic Technologies Inc. </A>All Rights Reserved. </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
  524.         <!-- /DP footer -->
  525.     </div>
  526. </xsl:template>
  527.  
  528. <!-- ********************************************************************** -->
  529. <!-- ** Column                                                           ** -->
  530. <!-- ********************************************************************** -->
  531. <xsl:template name="Column">
  532.   <xsl:param name="COLUMN" />
  533.   <xsl:param name="NCOLUMNS" select="2" />
  534.   
  535.   <table width="100%" border="0" cellpadding="0" cellspacing="0">
  536.           <tr><td align="center" valign="top"><br/>
  537.     
  538.     <xsl:choose>
  539.     
  540.       <xsl:when test="//channel">
  541.             <xsl:for-each select="//channel[(position() - ((((ceiling(position() div $NCOLUMNS)) - 1) * $NCOLUMNS))) = $COLUMN]">
  542.               
  543.               <xsl:call-template name="Feed">
  544.                  <xsl:with-param name="FEED_ID" select="concat($COLUMN, '_', position())" />
  545.                 </xsl:call-template>
  546.                 
  547.             </xsl:for-each>
  548.       </xsl:when>
  549.             
  550.       <xsl:when test="/atom:feed">
  551.             <xsl:for-each select="/atom:feed">
  552.               <xsl:call-template name="Feed">
  553.                  <xsl:with-param name="FEED_ID" select="concat($COLUMN, '_', position())" />
  554.                 </xsl:call-template>
  555.             </xsl:for-each>
  556.       </xsl:when>
  557.       
  558.       <xsl:when test="/atom2:feed">
  559.             <xsl:for-each select="/atom2:feed">
  560.               <xsl:call-template name="Feed">
  561.                  <xsl:with-param name="FEED_ID" select="concat($COLUMN, '_', position())" />
  562.                 </xsl:call-template>
  563.             </xsl:for-each>
  564.       </xsl:when>
  565.       
  566.       <xsl:when test="//feed">
  567.             <xsl:for-each select="//feed[(position() - ((((ceiling(position() div $NCOLUMNS)) - 1) * $NCOLUMNS))) = $COLUMN]">
  568.               <xsl:call-template name="FeedDoc">
  569.                  <xsl:with-param name="FEED_ID" select="concat($COLUMN, '1_', position())" />
  570.                 </xsl:call-template>
  571.             </xsl:for-each>
  572.       </xsl:when>
  573.       
  574.                                        
  575.     </xsl:choose>           
  576.  
  577.               
  578.     
  579.     
  580.     </td></tr>
  581.         </table>
  582.                   
  583.   <xsl:if test="$COLUMN < $NCOLUMNS">
  584.       <xsl:call-template name="Column">
  585.       <xsl:with-param name="COLUMN" select="$COLUMN + 1" />
  586.       <xsl:with-param name="NCOLUMNS" select="$NCOLUMNS" />
  587.     </xsl:call-template>
  588.   </xsl:if>
  589.                   
  590. </xsl:template>
  591.  
  592. <!-- ********************************************************************** -->
  593. <!-- ** Main Template                                                    ** -->
  594. <!-- ********************************************************************** -->
  595. <xsl:template match="/">
  596.   <!-- The Mark of The Web - for XP SP2 and above versions of IE -->
  597.   <xsl:text> </xsl:text>
  598.   <xsl:comment> saved from url=(0013)about:internet </xsl:comment>
  599.   <xsl:text> </xsl:text>
  600.  
  601.   <HTML>
  602.     <HEAD>
  603.         <title>My RSS Feeds</title>
  604.         <link rel="stylesheet" type="text/css" href="rss-style.css" />
  605.         <script language="JavaScript" src="rss-function.js"></script>
  606.     </HEAD>
  607.     <BODY bgcolor="white" onload="RestorePreferences();">
  608.  
  609.     <a name="pagetop" />
  610.     
  611.     <br/> 
  612.     
  613.     <!--Header-->        
  614.     <table width="100%" border="0" cellSpacing="0" cellPadding="0" align="center" valign="top">
  615.     <tr>
  616.         <td valign="top" width="8%" align="right">
  617.             <img src="feed-icon.gif" width="32" height="32" valign="top" hspace="6"/>            
  618.         </td>
  619.         
  620.         <td width="84%">        
  621.         <table width="100%" border="0" cellspacing="0" cellpadding="0">
  622.             <tr>
  623.                 <td width="100%">        
  624.                     <table width="100%" border="0" cellspacing="0" cellpadding="0">
  625.                         <tr>                
  626.                             <td width="100%" height="20" align="left" valign="top" colspan="2">
  627.                                 <span class="page-title">My RSS Feeds</span>                                
  628.                             </td>                                            
  629.                         </tr>
  630.                         <tr>
  631.                             <td width="100%" class="header-hr" align="left" colspan="3" height="1">
  632.                             </td>
  633.                         </tr>
  634.                         <tr height="26">
  635.                             <td width="50%" align="left" valign="top">
  636.                                 <span class="action-link">
  637.                                     <a href="javascript:ExpandAllItems(0);">collapse all items</a> | <a href="javascript:ExpandAllItems(1);">expand all items</a>
  638.                                 </span>
  639.                             </td>
  640.                             <td width="50%" align="right" valign="middle">
  641.                                 <form action="" method="post" name="form1" class="forms-search">                                                            
  642.                                     <select name="menu1" id="ComboNbrItem" class="forms-search" onChange="LimitNewsNumber(this.value)">
  643.                                         <option value="9999">Show all items</option>
  644.                                         <option value="2">Show 2 items per feed</option>                                        
  645.                                         <option value="6" selected="True">Show 6 items per feed</option>
  646.                                         <option value="10">Show 10 items per feed</option>                            
  647.                                     </select>
  648.                                 </form>
  649.                             </td>
  650.                         </tr>            
  651.                     </table>        
  652.                 </td>
  653.             </tr>
  654.         </table>
  655.                             
  656.         </td>
  657.         
  658.         <td width="8%"></td>
  659.         
  660.     </tr>
  661.     </table>
  662.     
  663.     <!--This div is hidden until all cookie and display setting are changed.-->
  664.     <div id="main-content-div" style="display:none">
  665.         
  666.     <table width="84%" border="0" cellSpacing="0" cellPadding="0" align="center" valign="top">
  667.     <tr>
  668.         <td>
  669.             <xsl:call-template name="Column">
  670.                 <xsl:with-param name="COLUMN" select="1" />
  671.                 <xsl:with-param name="NCOLUMNS" select="1" />
  672.             </xsl:call-template>           
  673.         </td>
  674.     </tr>
  675.     </table>
  676.     <br/>
  677.     
  678.     </div>
  679.     </BODY>    
  680.   </HTML>
  681. </xsl:template>
  682.  
  683. </xsl:transform>
  684.  
  685.